Lệnh find trong Linux: Cấu trúc lệnh và cách sử dụng
Cấu trúc của lệnh Find
Về cơ bản, chúng ta sẽ sử dụng cấu trúc chung như sau:
$ find [bắt đầu từ đâu] [biểu thức thực hiện việc cần làm] [-tùy chọn] [thứ tìm kiếm]
Trong đó, [-tùy chọn] sẽ bao gồm một số ý cơ bản như sau và bạn có thể tìm thêm trên các diễn đàn:
- -user name: tên chủ sở hữu hoặc ID
- -empty: tìm tệp trống
- -name demo: tìm tên một tệp có chữ demo bên trong
Với đặc trưng là giao diện dòng lệnh, Linux thực sự là một công cụ rất mạnh mẽ và linh hoạt trong việc tìm kiếm nhờ sự trợ giúp của grep, awk, Find và located. Nhờ những công cụ này mà bạn sẽ dễ dàng hơn trong việc tìm kiếm các tập tin, tìm kiếm văn bản trong file hoặc thay thế một từ nào đó. Trong khuôn khổ bài viết này, chúng ta sẽ tìm hiểu kỹ về cách sử dụng lệnh Find nhé!
Hướng dẫn sử dụng lệnh Find trên Linux
Để dễ dàng đọc hiểu hơn, chúng ta sẽ “quy định riêng” cách viết trong khuôn khổ bài viết này như sau nhé!
- Tiêu đề: hiển thị nhóm lệnh có cùng một điểm chung
- Dòng chữ có đánh số: hiển thị nội dung của code bên dưới
- Code dùng để tìm kiếm
Tìm kiếm cơ bản
1. Tìm kiếm file theo tên file đầy đủ
# find . blogkdata.txt
Kết quả:
./blogkdata.txtLệnh trên sẽ tìm file có tên là blogkdata.txt ( dấu . đại diện cho thư mục hiện hành).
2. Tìm kiếm file theo tên không đầy đủ.
# find / -name blogkdata*
Kết quả:
/home/bloglkdata1.php
/var/blogkdataabc.rar
Lệnh trên sẽ tìm trên toàn bộ hệ thống file có tên bắt đầu bằng “blogkdata”
3. Tìm kiếm file với phần mở rộng.
# find /home -name *.php
Kết quả:
/home/blogkdata.php
/home/admin/login.php
Lệnh trên sẽ tìm trong thư mục /home những file có tên bất kỳ, miễn nó có phần mở rộng là .php
4. Tìm kiếm file ẩn
# find / -type f -name ".*"
Tìm kiếm dựa trên phân quyền và nhóm quyền
5. Tìm kiếm file thuộc sở hữu của blogkdata
# find /home -user blogkdata
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có chủ sở hữu là blogkdata
6. Tìm kiếm file có group là blogkdata
# find /home -group blogkdata
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có group là blogkdata
7. Tìm kiếm file được phân quyền 777
# find . -type f -perm 777
8. Tìm file chỉ có quyền read
# find / -perm /u=r
9. Tìm kiếm file rỗng
# find /tmp -type f -empty
Tìm kiếm dựa trên thời gian
10. Tìm kiếm file được chỉnh sửa trong vòng 50 ngày
# find / -mtime 50
11. Tìm kiếm file được chỉnh sửa trong vòng 50 - 100 ngày
# find / -mtime +50 –mtime -100
12. Tìm kiếm file vừa được tạo ra trong vòng 1 giờ
# find / -cmin -60
Tìm kiếm dựa trên dung lượng
13. Tìm kiếm file có dung lượng 50M
# find / -size 50M
14. Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M
# find / -size +50M -size -100M
15. Tìm thư mục có tên blogkdata
# find / -type d -name blogkdata
16. Tìm kiếm trên nhiều thư mục
# find /opt /usr /var -name blogkdata.txt -type f
Lệnh trên sẽ tìm kiếm trên các thư mục /opt /usr /var tập tin blogkdata.txt
17. Tìm và xóa file có dung lượng trên 100M
# find / -size +100M -exec rm -rf {} \;
Tìm kiếm dựa trên phần mở rộng/ nội dung
18. Tìm và chmod 644 file có phần mở rộng là .html
# find /usr/local -name "*.html" -type f -exec chmod 644 {} \;
19. Tìm file có phần mở rộng là .mp3 và copy file đó đến thư mục /tmp/MusicFiles
# find . -type f -name "*.mp3" -exec cp {} /tmp/MusicFiles \;
20. Tìm file có chứa nội dung blogkdata
# find /home -type f -exec grep -l ‘blogkdata’{} \;
Chúc bạn sử dụng thành thạo lệnh find trong Linux!